在使用 Proxmox VE 時,我們一定能體會到,開 CT 比開 VM 還快多了這件事。
開 CT 的話只要用 Proxmox VE 包好的 Template,滑鼠點個幾下,機器就開好了,連進去馬上就能開始裝軟體跟設定東西。開 VM 的話就沒這樣的好處,雖然滑鼠點個幾下能做完很多事,但 VM 開機後還是得打開 console 自己裝系統,系統裝好後才能用其他方法連進系統開始安裝或設定套件
如果有更簡單的方式能裝 VM 就好了。
有, cloud-init images
cloud-init 是個業界標準、支援多個 Linux 發行版的環境初始化套件,這可以幫助你快速建立你的環境,減少人為操作的時間,在各大公有雲上都能看到 cloud-init 的影子,而 Proxmox VE 也支援了 cloud-init,讓我們可以不用每次都要手動安裝 VM,可以利用 clone
的方式快速建立 VM
要使用 cloud-init
以前,我們要先取得 cloud image
Cloud image 是個專門給雲端環境用的系統映像檔,裡面會包含一個完整的 Linux 發行版,但這個 image 會在開機時自動尋找 cloud-init
的相關資訊,並利用這些資訊來對這個系統進行初始化,而初始化完成後,使用者就可以進去操作這個系統了
而我們需要手動在 Proxmox VE 裡建立 VM,並讓這個 VM 使用 cloud image,接下來再在這個 VM 上加入 cloud-init
的資訊,讓 VM 啟動時能有初始化的資訊,這樣我們就不用每次都要手動安裝系統了,省下維護時間
我們接下來都需要在 Host 的 shell 裡操作 Proxmox VE,別擔心,不會很可怕的,我保證。
首先,我們要先取得 cloud image,這裡以 Ubuntu 20.04 為例,在 Host 輸入這行指令
wget http://free.nchc.org.tw/ubuntu-cloud-images/releases/20.04/release/ubuntu-20.04-server-cloudimg-amd64.img
下載完成後是建立 VM
qm create 9000 --memory 1024 --net0 virtio,bridge=vmbr0
這行指令會建立一個 VM, VM ID 是 9000
,這個 VM 的記憶體是 1024MB,然後有一個網卡,使用的 bridge 是 vmbr0
接下來要把剛下載的 cloud image 匯入進剛建立的 VM
qm importdisk 9000 ubuntu-20.04-server-cloudimg-amd64.img local-lvm
這行指令會把剛我們下載的 cloud image 匯入進 VM 9000,然後這個 image 會存在 local-lvm
匯入完成後,要把剛匯入的 image 實際接上 VM
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0
再來就是讓這個 VM 能使用與在這個 VM 上能設定 cloud-init
qm set 9000 --ide0 local-lvm:cloudinit
接下來是設定 VM 的開機設定
qm set 9000 --boot c --bootdisk scsi0
最後,由於 cloud image 比較特殊,我們在操作 console 時必須使用 serial,所以我們要在這裡設定
qm set 9000 --serial0 socket --vga serial0
這樣設定完成後,你就有個能用 cloud-init
的 VM 了,但這樣只是建立好一個 VM 而已
為了讓未來不用都這樣設定 VM,所以我們把我們剛建立的 VM 轉換成 template,這樣未來要開新的 VM 的時候,我們只要利用這個 template 即可快速建立 VM
qm template 9000
如果一切都順利的話,你應該會在 Proxmox VE 的界面裡看到你剛建立的 VM 9000,不過點開後,會發現這個 VM 長的不太一樣
那是因為這個 VM 已經被轉換成 Template 了,我們無法直接使用這個 VM,我們必須 clone 這個 VM 才能使用它
右上角有個 More,點開裡面有 Clone 的選項,點開會看到這樣的畫面
我們可以透過 Clone 的方式快速建立 VM,在這裡填上 VM 的名稱,好了以後壓下 Clone
建立完成後可以看到我們新的 VM,不過這 VM 看起來和我們先前建立過的 VM 好像沒什麼不一樣,對吧?
真正不一樣的地方在 Cloud-Init
的選單內,點開會看到這樣的畫面
我們可以在裡面設定
我們在這裡至少需要設定
三個設定, User 和 Password 就填進你的使用者名稱與密碼, IP Config 裡則把 IPv4 設定成 DHCP 即可
設定完以後,上面有個 Regenerate Image
的按鈕,要壓下去,才能把你剛設定的資料寫進 cloud-init
內,這樣開機讀取時才會讀到你的資料
好了就打開 VM 吧! 你應該能看到開機畫面,開機完成後,就能用剛設定的使用者帳密登入系統了
如何? 這個速度是不是比自己手裝 VM 還快很多?
Proxmox VE 的部分大概就先介紹到這裡,接下來要介紹 Terraform